﻿using System;
using System.Xml;
using CID.Domain.Operations;

namespace CID.Domain.Infrastructure
{
    public interface IParameterValue : IEntity
    {
        IDefinition Definition { get; }
        IParameter Parameter { get; }

        bool BooleanValue { get; set; }
        DateTime DateTimeValue { get; set; }
        decimal DecimalValue { get; set; }
        int IntegerValue { get; set; }
        string StringValue { get; set; }
        Guid UniqueIdentifierValue { get; set; }
        XmlDocument XmlValue { get; set; }

        void CopyTo(IParameterValue target);
    }
    
    public interface IDefaultParameterValue : IParameterValue
    {
    }

    public interface IEnvironmentParameterValue : IParameterValue
    {
        IEnvironment Environment { get; }
    }
}
